// pages/authorize/authorize.js - 微信授权登录页面逻辑
Page({
  data: {
    loading: false, // 加载状态
    token:'',
  },

  onLoad: function(options) {
    // 页面加载时检查本地是否有token
    const token = wx.getStorageSync('token');
    if (token) {
      // 已有token，跳转到首页
      wx.switchTab({
        url: '/pages/index/index'
      });
    }
  },

  // 微信用户信息授权回调
  onGotUserInfo: function(e) {
    if (!e.detail.userInfo) {
      // 用户拒绝授权
      wx.showToast({
        title: '您拒绝了授权',
        icon: 'none'
      });
      return;
    }
    
    this.setData({ loading: true });
    
    // 保存用户信息到本地存储
    wx.setStorageSync('userInfo', e.detail.userInfo);
    
    // 获取登录凭证code
    wx.login({
      success: res => {
        if (res.code) {
          // 将code发送到后端验证
          wx.request({
            url: `http://localhost:8080/api/wechat/login`,
            method: 'POST',
            data: {
              code: res.code
            },
            success: (result) => {
              console.log(result);
              if (result.data.code === 200) {
                if (result.data.data.token!=null) {
                  // 微信账号已绑定，保存token并跳转到首页
                  wx.setStorageSync('token', result.data.data.token);
                  wx.setStorageSync('userId', result.data.data.userId);
                  this.setData({
                    token: result.data.data.token
                  });
                  console.log(this.data.token);
                  wx.switchTab({
                    url: '/pages/index/index'
                  });// 仅用于测试
                } 
                }
                else {
                  // 微信账号未绑定，跳转到账号密码登录页
                  wx.navigateTo({
                    url: `/pages/login/login`
                  });
              } 
            },
            fail: (err) => {
              console.error('请求失败', err);
              // 网络请求失败
              wx.showToast({
                title: `网络请求失败:${err.errMsg}`,
                icon: 'none'
              });
            },
            complete: () => {
              this.setData({ loading: false });
            }
          });
        } else {
          // 获取code失败
          wx.showToast({
            title: '获取code失败',
            icon: 'none'
          });
          this.setData({ loading: false });
        }
      },
      fail: () => {
        // 登录失败
        wx.showToast({
          title: '登录失败',
          icon: 'none'
        });
        this.setData({ loading: false });
      }
    });
  }
});
